package cn.edu.gduf.luowowo.article.mapper;

import cn.edu.gduf.luowowo.article.domain.Destination;
import cn.edu.gduf.luowowo.article.query.DestinationDaysQuery;
import cn.edu.gduf.luowowo.article.query.DestinationQuery;
import cn.edu.gduf.luowowo.article.query.DestinationSearchQuery;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface DestinationMapper {
    int deleteByPrimaryKey(Long id);

    int insert(Destination record);

    Destination selectByPrimaryKey(Long id);

    List<Destination> selectAll();

    int updateByPrimaryKey(Destination record);

    List<Destination> selectDestsByDeep(int deep);

    List<Destination> selectSubDestParentId(long parentId);

    List<Destination> selectDestByIds(Long[] destIds);

    List selectForList(DestinationQuery qo);

    void updateHotValue(@Param("id") Long id, @Param("hot") int hot);

    Destination selectByStrategyId(Long strategyId);

    List<Destination> selectCinaCitys();

    List<Destination> selectByHotelThemeId(Long themeId);

    List<Destination> selectForHotelCity();

    List<Destination> selectMonDestByIds(Long[] destIds);

    List<Destination> selectByThemeAndMonthAndDay(DestinationSearchQuery qo);

    List<Destination> selectDestDay(DestinationDaysQuery qo);

    List<Destination> selectHotFlights();

    List<Destination> selectImportantDest();

    List<Destination> selectFlightsByA2E();

    List<Destination> selectFlightsByF2J();

    List<Destination> selectFlightsByK2P();

    List<Destination> selectFlightsByQ2W();

    List<Destination> selectFlightsByX2Z();
}